ProppFrexx WebRadio Player
==========================
Copyright : (c) 2012 by radio42, Hamburg, Germany. All rights reserved.
Author    : Bernd Niedergesaess, bn@radio42.com

Purpose   : Free, generic and configurable WebRadio Player.


WARNING
=======
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF THIS SOFTWARE BASICALLY,
YOU USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK.


What's the point?
=================
The ProppFrexx WebRadio Player is a simply but efficient and high quality
internet stream player, that is freely customizable.


Licence
=======
The ProppFrexx WebRadio Player is free. You can freely distribute and use it.
No license is required.


Requirements
============
The ProppFrexx WebRadio Player needs the FULL .Net Framework 4.0 or above to be installed on the target machine.
It supports the following operating systems:
- Windows 7 (32- and 64-bit)
- Windows Server 2008 (32- and 64-bit)
- Windows Vista (32- and 64-bit)
- Windows Server 2003 (32- and 64-bit)
- Windows XP (32- and 64-bit)
- Windows 2000
- Windows 98

When you depoly the ProppFrexx WebRadio Player the following files are needed:
- ProppFrexx Player.exe
- ProppFrexx Player.exe.config
- bass.dll
- Bass.Net.dll
- basswma.dll
- ProppFrexx.UI.dll
In addition any image files that you are refering to in the .config must be deployed as well.


FEATURES
========
* single button player
* supports MP3, OGG and WMA internet streams
  (other formats are supported via add-ons, see www.un4seen.com)
* 10-band EQ with Pre-Amp
* multi-language support
* fully customizable UI
* integrated Mini-Web-Browser

The player uses the installed MP3 codec on the target machine as it comes with the Windows Media Player.
So no additional MP3 license is required.


SETUP
=====
No setup is required. You might simply provide all the deployment file in a single zip.
However, all the above files must reside in the same directory.


USAGE
=====
The ProppFrexx WebRadio Player has the following UI elements:
"Station Display": allows you to select any configured station/stream
"Play Button": starts or stops the actual playback of the selected station
"Format Display": shows the currectly playing stream format
"Title Display": shows the currently playing title of the station/stream
"Level Meter": left/right peak level meter
"Volume Control": allows you to adjust the output volume
"Web Browser": integrated mini web browser

A Right-Click on the main window opens the shortcut menu with the following options:
- Options...: opens the settings dialog
- Help...: shows the about box
- Close: closes the player

A Right-Click on the Volume Control mutes/unmutes the output.
A Double-Click on the Volume Control resets the output volume to the 70% default value.

A Click or Right-Click on the Station Display opens the list of configured stations/streams and allows the user 
to select a new station/stream.

A Click on the Play Button starts or stops the playback of the currently selected station/stream.

In the Options Dialog you can configure the following settings:
- Output Soundcard: selects the soundcard to be used for output
- Language: the language to be used
- Equalizer: allows you to enable the 10-band EQ plus the Pre-Amp
  (Note: when increasing any of the EQ bands, it might be necessary to lower the Pre-Amp to avoid distortion)

Any changed settings will be automatically saved when the player is closed.
The user settings are saved in the registry under "HKEY_CURRENT_USER\Software\radio42\ProppFrexx Player".



CONFIGURATION
=============
The behavior incl. the look and feel can be fully customized by the .config file.
The .config file must have the same name as the .exe plus the extension .config!
E.g. when you name the .exe "XYZ.exe" you must name the .config "XYZ.exe.config".

Section "GENERAL":
------------------
This sections controls the entire look and feel as well as the main behavior of the player.
You might adjust the position, size and colors of any UI element of the player.

CreateDesktopShortCut: (true or false)
Should a desktop shortcut link be created when the player is started for the very first time?

DefaultLanguage: (string, key)
Specifies the default language to be used when the player is first started.
The language key must exist in the LANGUAGES section.

Opacity: (float, between 0.0 and 1.0)
Defines the transparency of the entire player (0.0=invisible...1.0=no transparency).

BackColor: (RGB or named color)
Defines the background color of the main window.

TransparentColor: (RGB or named color)
Defines the transparency key of the main window.
Any color in the main window of that key will be transparent.

ForeColor: (RGB or named color)
Defines the default text color of the main window.

BackImage: (filename)
Defines a path to an optional background image to be used for the main window.

ShowBorder: (true or false)
Should the main window border be shown?
If false, the player is drawn without any window frame.

MainWidth, MainHeight: (int)
The width and height of the main window in pixel.

WebURL: (string, http address)
If specified a mini web browser is shown at the given location.
If empty, the mini web browser is hidden.

WebX, WebY, WebWidth, WebHeight: (int)
The location and size of the web browser panel in pixel.

WebCatchStreamLinks: (true or false)
If true, clicked stream link URLs on the shown web pages will be catched and played in the player.
Stream link URLs must end with: .pls, .m3u, .asx, .wax, .mp3, .ogg, .wma

WebSuppressPopupWindows: (true or false)
If true, any new popup window that a web page might open will be suppressed.

WebScrollBarsEnabled: (true or false)
If true, the web browser might display scroll bars, if the content does not fit into the window.
If false, scroll bars are never shown.

TitleSpeed: (int, between 1 and 500)
Defines the scrolling speed of the Title Display (1=very fast, 500=very slow).

TitleForeColor: (RGB or named color)
Defines the text color of the Title Display.

TitleX, TitleY, TitleWidth, TitleHeight: (int)
The location and size of the Title Display in pixel.

StationX, StationY, StationWidth, StationHeight: (int)
The location and size of the Station Display in pixel.

FormatX, FormatY, FormatWidth, FormatHeight: (int)
The location and size of the Format Display in pixel.

LevelLeftX, LevelLeftY, LevelLeftWidth, LevelLeftHeight: (int)
LevelRightX, LevelRightY, LevelRightWidth, LevelRightHeight: (int)
The location and size of the left resp. right Level Meter in pixel.

LevelBackColor: (RGB or named color)
Defines the background color of the left and right Level Meter.

LevelColorDefault: (RGB or named color)
Defines the default color of the left and right Level Meter.

LevelColorBand2: (RGB or named color)
Defines the color of the first band (up to -3dB) of the left and right Level Meter.

LevelColorBand2: (RGB or named color)
Defines the color of the second band (from -3dB to 0dB) of the left and right Level Meter.

VolumeX, VolumeY, VolumeWidth, VolumeHeight: (int)
The location and size of the Volume Control in pixel.

VolumeBackColor: (RGB or named color)
Defines the background color of the Volume Control.

VolumeLineColorDefault: (RGB or named color)
Defines the default color of the Volume Control.

VolumeLineColorPositive: (RGB or named color)
Defines the color of the Volume Control.

PlayX, PlayY: (int)
The location of the Play Button in pixel (the size is always 32x32).

PlayImages: (filename)
Defines a path to an optional image strip to be used for the Play Button.
The image file must contain 4 images, each 32x32, so that the image strip file has a size of 128x32.


Section "STREAMS":
-----------------
In this section you configure all stations/streams which should be available within the player.
The first entry is the default (preselected) station when the player is first started.
key: short name of the station/stream as it should be displayed to the user.
value: URL of the stream/station to be used for playback.

Section "LAYOUT":
-----------------
In this section you configure all available design layouts which should be available within the player.
The first entry is the default (preselected) layout when the player is first started.
key: short name of the layout as it should be displayed to the user.
value: filename of the layout to be used (must be a valid .config file located in the same directory).

Section "PRESET":
-----------------
In this section you might configure a preset for the 10-band EQ to be used when the player is first started.
Gain: the pre-amp gain value in dB between -15.0 and +15.0
EQActive: Should the EQ be active? (true or false)
EQ0..EQ9: The EQ values for the 10 bands in dB between -15.0 and +15.0


Section "LANGUAGES":
-----------------
In this section you configure the available languages.
Note: For each entry a seperate section must exist using the language key as the section name!
key: key of the language
value: name of the language

Section <language key>:
-----------------------
This section must contain all translated text values for all language elements.


Have fun,
Bernd Niedergesaess
